Hadoop

您所在的位置:网站首页 8042端口 hadoop Hadoop

Hadoop

2024-01-18 17:11| 来源: 网络整理| 查看: 265

记录Hadoop-2.6.5完整安装配置过程 一、Hadoop是什么?二、Hadoop-2.6.5安装配置1. 修改主机名2. 下载并解压JDK3. 配置环境变量4. 修改Hadoop中5个主要配置文件5. 启动Hadoop6. Hadoop Web端口测试 三、总结

一、Hadoop是什么? Hadoop系统最初的源头来自于Apache Lucene项目下的搜索引擎子项目Nutch,该项目的负责人是Doug Cutting。2003年,Google为了解决其搜索引擎中大规模Web网页数据的处理,研究发明了一套称为MapReduce的大规模数据并行处理技术。2004年,在OSDI会议上发表了题为:“MapReduce: Simplified Data Processing on Large Clusters”的论文,简要介绍了MapReduce的基本设计思想。Doug Cutting发现Google MapReduce所解决的大规模搜索引擎数据处理问题,正是他同样面临并急需解决的问题。因此,他尝试模仿Google MapReduce的设计思路,用Java设计实现了一套新的MapReduce并行处理系统,并将其与Nutch分布式文件系统NDFS结合,用以支持Nutch搜索引擎的数据处理。2006年,将NDFS和MapReduce从Nutch项目中分离出来,成为一套独立的软件系统,并用Doug Cutting小儿子当时牙牙学语称呼自己玩具小象的名字“Hadoop”命名了这个系统。 二、Hadoop-2.6.5安装配置

下面我们将以Hadoop-2.6.5(下载地址请见这里)为例,说明它的安装配置过程。

1. 修改主机名

我们需要在Linux CentOS的两个配置文件中修改主机名信息,具体操作主要包括两个步骤:

操作如下(示例):

(1)修改/etc/sysconfig下的network文件,将其中HOSTNAME的值修改为用户指定的主机名。

(a)打开network文件:

vi /etc/sysconfig/network

(b)修改network文件中HOSTNAME的值:

NETWORKING=yes HOSTNAME=shengyphadoop

其中,shengyphadoop是我们指定的主机名。

(2)修改/etc下的hosts文件,增加一条IP地址到主机名的映射信息。

192.168.238.101 localhost shengyphadoop

其中,192.168.238.101是CentOS所在主机的静态IP地址,shengyphadoop是我们指定的主机名。

待上述修改完成后,我们需要通过hostname命令使之生效:

hostname shengyphadoop

最后,我们可以选择ping命令或hostname命令检查修改后的主机名,如下所示。 在这里插入图片描述

2. 下载并解压JDK

在当前配置中,我们用到的JDK是jdk1.8.0_191版本(下载地址请见【百度网盘】(链接:https://pan.baidu.com/s/14IpNNHfRJYQCzZ2kl11gYA ,提取码:4dhg).

(1)下载jdk1.8.0_191后,将它上传至CentOS系统(在这里,我们上传到的CentOS目录为:/home/shengyp/tools;采用filezilla(下载地址请见【百度网盘】(链接:https://pan.baidu.com/s/1tFVcIKtbraYg7CynDXtzaA ,提取码:o6oa))作为文件传输工具(即上传工具)。

(2)使用tar -zxf命令对jdk1.8.0_191进行解压:

[root@shengyphadoop tools]#tar -zxf ./jdk-8u191-linux-x64.tar.gz 3. 配置环境变量

根据hadoop压缩包的解压路径,在系统全局配置文件/etc/profile中增加相应的环境变量,具体操作主要包括两个步骤:

操作如下(示例):

(1)进入hadoop-2.6.5.tar.gz包所在的目录(这里是:/home/shengyp/tools),通过tar -zxf命令对其进行解压:

[root@shengyphadoop tools]#tar -zxf ./hadoop-2.6.5.tar.gz

(2)进入/etc/profile文件,在该文件的末尾处创建JAVA_HOME和HADOOP_HOME环境变量,并将它们进行赋值。

(a)打开/etc/profile文件:

[root@shengyphadoop tools]#vi /etc/profile

(b)使用export命令增加JAVA_HOME和HADOOP_HOME两个环境变量,并对它们进行赋值。最后,在PATH变量中通过$符号引用以上两个变量,指定到它们各自的/bin和/sbin目录,并通过分号;依次进行黏贴。

export JAVA_HOME=/home/shengyp/tools/jdk1.8.0_191 export HADOOP_HOME=/home/shengyp/tools/hadoop-2.6.5 export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$PATH

其中,JAVA_HOME的值为jdk-8u191-linux-x64.tar.gz的解压目录,HADOOP_HOME的值为hadoop-2.6.5.tar.gz的解压目录。

4. 修改Hadoop中5个主要配置文件

在hadoop-2.6.5.tar.gz的解压文件中,我们主要关注hadoop-2.6.5/etc/hadoop下的hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml这5个主要配置文件。接下来,我们将给出它们的主要配置:

(1)在hadoop-env.sh文件中,修改JAVA_HOME变量,将它的值设置为jdk-8u191-linux-x64.tar.gz的解压目录,于是有: 在这里插入图片描述 值得进一步说明的是,如果在这里不进行设置,在格式化namenode节点时,将会报JAVA_HOME is not set and could not be found.的错误,

以下帖子中同样提到了上述错误的解决办法: hadoop启动过程中出现Error: JAVA_HOME is not set and could not be found.解决办法

【前奏开始】 在介绍以下4个配置文件中的核心配置前,我们可以看看官方模板中的相关配置说明(请见【百度网盘】(链接:https://pan.baidu.com/s/1yq1uhVEAvVxHviFGixqXlg ,提取码:cjn4)。例如,在模板core-site-template.xml中,我们可以看到核心键-值(key-value)的模板配置,以及关于该配置的描述信息,如下图所示。 在这里插入图片描述 在这里插入图片描述 【前奏结束】

正曲开始…

(2)在core-site.xml文件中,增加的内容包括:

fs.default.name hdfs://shengyphadoop:9000 hadoop.tmp.dir /home/shengyp/tools/hadoop-2.6.5/tmp dfs.namenode.secondary.http-address shengyphadoop:9001

其中, (a)键fs.default.name的值的模板为hdfs://localhost:9000,我们将其中的localhost设置为shengyphadoop,即本机的主机名,读者同样可以换成本机的IP地址;9000为默认端口号。

(b)键hadoop.tmp.dir的值的模板为/tmp/hadoop-${user.name},即一个存储HDFS以及namenode相关信息的临时文件目录,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir命令新建tmp目录,并将该目录的地址赋值给上述键值。

(c)键dfs.namenode.secondary.http-address的值的模板为localhost:9001,我们将其中的localhost设置为shengyphadoop,即本机的主机名,读者同样可以换成本机的IP地址;9001为默认端口号。

(3)在hdfs-site.xml文件中,增加的内容包括:

dfs.namenode.name.dir /home/shengyp/tools/hadoop-2.6.5/dfs/name dfs.datanode.data.dir /home/shengyp/tools/hadoop-2.6.5/dfs/data dfs.replication 1

其中, (a)键dfs.namenode.name.dir的值的模板为file://${hadoop.tmp.dir}/dfs/name,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建dfs/name目录,并将该目录的地址赋值给上述键值。

(b)键dfs.datanode.data.dir的值的模板为file://${hadoop.tmp.dir}/dfs/data,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建dfs/data目录,并将该目录的地址赋值给上述键值。

(c)键dfs.replication的值的模板为3,即副本集的个数,由于我们采用“伪分布式”部署模式,故将副本集的个数由3改为1。

(4)在mapred-site.xml文件中,增加的内容包括:

mapreduce.framework.name yarn mapreduce.cluster.local.dir /home/shengyp/tools/hadoop-2.6.5/mapred/local mapreduce.jobtracker.system.dir /home/shengyp/tools/hadoop-2.6.5/mapred/system

其中, (a)键mapreduce.framework.name的值的模板为local,由于我们采用yarn作为资源调度框架,进而为mapreduce进程分配资源。因此,这里将local改为yarn。

(b)键mapreduce.cluster.local.dir的值的模板为${hadoop.tmp.dir}/mapred/local,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建/mapred/local目录,并将该目录的地址赋值给上述键值。

(c)键mapreduce.jobtracker.system.dir的值的模板为${hadoop.tmp.dir}/mapred/system,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建/mapred/system目录,并将该目录的地址赋值给上述键值。

(5)在yarn-site.xml这个文件中,增加的内容包括:

yarn.resourcemanager.hostname shengyphadoop yarn.nodemanager.aux-services mapreduce_shuffle

其中, (a)键yarn.resourcemanager.hostname的值的模板为0.0.0.0,我们将其中的0.0.0.0地址修改为shengyphadoop,即本机的主机名,读者同样可以换成本机的IP地址。

(b)键yarn.nodemanager.aux-services的值的模板为,我们将该键值修改为mapreduce_shuffle。

为方便读者进一步查看相关配置,作者已将上述5个已填充的主要配置文件上传至百度网盘,请见【这里】(链接:https://pan.baidu.com/s/1l4Zzu8aQXMYju6sIwT30sw ,提取码:ks7q)

5. 启动Hadoop

完成上述主要配置后,我们可以正常启动Hadoop-2.6.5了。Hadoop的启动命令/脚本主要在/home/shengyp/tools/hadoop-2.6.5/bin目录,或者是/home/shengyp/tools/hadoop-2.6.5/sbin目录下。

(1)进入/home/shengyp/tools/hadoop-2.6.5/bin目录,通过hdfs namenode -format命令初始化namenode节点:

[root@shengyphadoop hadoop-2.6.5]#cd ./bin [root@shengyphadoop hadoop-2.6.5]#hdfs namenode -format

注意,这时如果出现unknownhostexception错误,请见以下帖子: hadoop分布式格式化时出现异常java.net.unknownhostexception

【小技巧开始】

当我们不记得命令参数时,可以使用-help命令来查看说明,例如: 在这里插入图片描述 【小技巧结束】

(2)在/home/shengyp/tools/hadoop-2.6.5/sbin目录(这里是/sbin目录,不是/bin目录)下,我们通过以下命令启动namenode、datanode、jobhistory、resourcemanager、nodemanager这5个守护进程:

(a)通过hadoop-daemon.sh start namenode命令启动namenode进程: 在这里插入图片描述 这里,我们可以看到:namenode进程的启动信息被写入了/home/shengyp/tools/hadoop-2.6.5/logs/hadoop-root-namenode-shengyphadoop.out这个日志文件中。换句话而言,我们可以通过查看该日志文件,追踪namenode进程的启动过程,尤其是排查相关错误。

(b)通过hadoop-daemon.sh start datanode命令启动datanode进程: 在这里插入图片描述 类似地,datanode进程的启动信息被写入了/home/shengyp/tools/hadoop-2.6.5/logs/hadoop-root-datanode-shengyphadoop.out这个日志文件中。

(c)通过mr-jobhistory-daemon.sh start historyserver命令启动jobhistory进程: 在这里插入图片描述 (d)通过yarn-daemon.sh start resourcemanager命令启动resourcemanager进程: 在这里插入图片描述 (e)通过yarn-daemon.sh start nodemanager命令启动nodemanager进程: 在这里插入图片描述 最后,我们可以通过jps命令查看目前系统中的守护进程: 在这里插入图片描述 此外,我们同样可以通过hadoop-daemon.sh stop namenode命令、 hadoop-daemon.sh stop datanode命令、 mr-jobhistory-daemon.sh stop historyserver命令、 yarn-daemon.sh stop resourcemanager命令和 yarn-daemon.sh stop nodemanager命令来关闭 namenode进程、datanode进程、jobhistory进程、jobhistory进程、resourcemanager进程和nodemanager进程。

这里值得进一步说明的是,

6. Hadoop Web端口测试

除使用jps命令外,我们同样可以通过hadoop Web端口查看这些守护进程背后的Web服务。关于hadoop Web端口,请见常用hadoop和yarn的端口

(1)在50070端口进行测试,如下图所示: 在这里插入图片描述 (2)在8088端口进行测试,如下图所示: 在这里插入图片描述 (3)在8042端口进行测试,如下图所示: 在这里插入图片描述 (4)在19888端口进行测试,如下图所示: 在这里插入图片描述

三、总结

提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

​ 【彩蛋来了】

看完作者写的这篇博文,或许读者还想再找找描述类似内容的博文。预料之中,作者已将它们附上,请参见:

centOS 6.4主机名的修改和网络配置ip、DNS等配置

linux jdk1.7 下载

转(hadoop2.6.3环境搭建)

hadoop_2.6.5集群安装

Hadoop2.6.5安装部署及环境变量配置

hadoop2.6.5 linux安装

hadoop 2.6.5安装详细步骤

Hadoop分别启动namenode,datanode,secondarynamenode等服务

hadoop namenode启动不了_Hadoop 安装教程 - HA方式

updated in 2021.12.16



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3